/**
 *@author ZY
 *@date 2023/2/13
 *@Description:生成随机昵称
*/
function randomNum(minNum, maxNum) {
    switch (arguments.length) {
        case 1:
            return parseInt(Math.random() * minNum + 1, 10);
            break;
        case 2:
            return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10);
            break;
        default:
            return 0;
            break;
    }
}
class RandomName {
    constructor() {
        this.nickHeader = [
            "快乐的",
            "冷静的",
            "醉熏的",
            "潇洒的",
            "糊涂的",
            "积极的",
            "冷酷的",
            "深情的",
            "粗暴的",
            "温柔的",
            "可爱的",
            "愉快的",
            "义气的",
            "认真的",
            "威武的",
            "帅气的",
            "传统的",
            "潇洒的",
            "漂亮的",
            "自然的",
            "专一的",
            "听话的",
            "昏睡的",
            "狂野的",
            "等待的",
            "搞怪的",
            "幽默的",
            "魁梧的",
            "活泼的",
            "开心的",
            "高兴的",
            "超帅的",
            "留胡子的",
            "坦率的",
            "直率的",
            "轻松的",
            "痴情的",
            "完美的",
            "精明的",
            "无聊的",
            "有魅力的",
            "丰富的",
            "繁荣的",
            "饱满的",
            "炙热的",
            "暴躁的",
            "碧蓝的",
            "俊逸的",
            "英勇的",
            "健忘的",
            "故意的",
            "无心的",
            "土豪的",
            "朴实的",
            "兴奋的",
            "幸福的",
            "淡定的",
            "不安的",
            "阔达的",
            "孤独的",
            "独特的",
            "疯狂的",
            "时尚的",
            "落后的",
            "风趣的",
            "忧伤的",
            "大胆的",
            "爱笑的",
            "矮小的",
            "健康的",
            "合适的",
            "玩命的",
            "沉默的",
            "斯文的",
            "香蕉",
            "苹果",
            "鲤鱼",
            "鳗鱼",
            "任性的",
            "细心的",
            "粗心的",
            "大意的",
            "甜甜的",
            "酷酷的",
            "健壮的",
            "英俊的",
            "霸气的",
            "阳光的",
            "默默的",
            "大力的",
            "孝顺的",
            "忧虑的",
            "着急的",
            "紧张的",
            "善良的",
            "凶狠的",
            "害怕的",
            "重要的",
            "危机的",
            "欢喜的",
            "欣慰的",
            "满意的",
            "跳跃的",
            "诚心的",
            "称心的",
            "如意的",
            "怡然的",
            "娇气的",
            "无奈的",
            "无语的",
            "激动的",
            "愤怒的",
            "美好的",
            "感动的",
            "激情的",
            "激昂的",
            "震动的",
            "虚拟的",
            "超级的",
            "寒冷的",
            "精明的",
            "明理的",
            "犹豫的",
            "忧郁的",
            "寂寞的",
            "奋斗的",
            "勤奋的",
            "现代的",
            "过时的",
            "稳重的",
            "热情的",
            "含蓄的",
            "开放的",
            "无辜的",
            "多情的",
            "纯真的",
            "拉长的",
            "热心的",
            "从容的",
            "体贴的",
            "风中的",
            "曾经的",
            "追寻的",
            "儒雅的",
            "优雅的",
            "开朗的",
            "外向的",
            "内向的",
            "清爽的",
            "文艺的",
            "长情的",
            "平常的",
            "单身的",
            "伶俐的",
            "高大的",
            "懦弱的",
            "柔弱的",
            "爱笑的",
            "乐观的",
            "耍酷的",
            "酷炫的",
            "神勇的",
            "年轻的",
            "唠叨的",
            "瘦瘦的",
            "无情的",
            "包容的",
            "顺心的",
            "畅快的",
            "舒适的",
            "靓丽的",
            "负责的",
            "背后的",
            "简单的",
            "谦让的",
            "彩色的",
            "缥缈的",
            "欢呼的",
            "生动的",
            "复杂的",
            "慈祥的",
            "仁爱的",
            "魔幻的",
            "虚幻的",
            "淡然的",
            "受伤的",
            "雪白的",
            "高高的",
            "糟糕的",
            "顺利的",
            "闪闪的",
            "羞涩的",
            "缓慢的",
            "迅速的",
            "优秀的",
            "聪明的",
            "含糊的",
            "俏皮的",
            "淡淡的",
            "坚强的",
            "平淡的",
            "欣喜的",
            "能干的",
            "灵巧的",
            "友好的",
            "机智的",
            "机灵的",
            "正直的",
            "谨慎的",
            "俭朴的",
            "殷勤的",
            "虚心的",
            "辛勤的",
            "自觉的",
            "无私的",
            "无限的",
            "踏实的",
            "老实的",
            "现实的",
            "可靠的",
            "务实的",
            "拼搏的",
            "个性的",
            "粗犷的",
            "活力的",
            "成就的",
            "勤劳的",
            "单纯的",
            "落寞的",
            "朴素的",
            "悲凉的",
            "忧心的",
            "洁净的",
            "清秀的",
            "自由的",
            "小巧的",
            "单薄的",
            "贪玩的",
            "刻苦的",
            "干净的",
            "壮观的",
            "和谐的",
            "文静的",
            "调皮的",
            "害羞的",
            "安详的",
            "自信的",
            "端庄的",
            "坚定的",
            "美满的",
            "舒心的",
            "温暖的",
            "专注的",
            "勤恳的",
            "美丽的",
            "腼腆的",
            "优美的",
            "甜美的",
            "甜蜜的",
            "整齐的",
            "动人的",
            "典雅的",
            "尊敬的",
            "舒服的",
            "妩媚的",
            "秀丽的",
            "喜悦的",
            "甜美的",
            "彪壮的",
            "强健的",
            "大方的",
            "俊秀的",
            "聪慧的",
            "迷人的",
            "陶醉的",
            "悦耳的",
            "动听的",
            "明亮的",
            "结实的",
            "魁梧的",
            "标致的",
            "清脆的",
            "敏感的",
            "光亮的",
            "大气的",
            "老迟到的",
            "知性的",
            "冷傲的",
            "呆萌的",
            "野性的",
            "隐形的",
            "笑点低的",
            "微笑的",
            "笨笨的",
            "难过的",
            "沉静的",
            "火星上的",
            "失眠的",
            "安静的",
            "纯情的",
            "要减肥的",
            "迷路的",
            "烂漫的",
            "哭泣的",
            "贤惠的",
            "苗条的",
            "温婉的",
            "发嗲的",
            "会撒娇的",
            "贪玩的",
            "执着的",
            "眯眯眼的",
            "花痴的",
            "想人陪的",
            "眼睛大的",
            "高贵的",
            "傲娇的",
            "心灵美的",
            "爱撒娇的",
            "细腻的",
            "天真的",
            "怕黑的",
            "感性的",
            "飘逸的",
            "怕孤独的",
            "忐忑的",
            "高挑的",
            "傻傻的",
            "冷艳的",
            "爱听歌的",
            "还单身的",
            "怕孤单的",
            "懵懂的"
        ];
        this.nickFoot = [
            "嚓茶",
            "凉面",
            "便当",
            "毛豆",
            "花生",
            "可乐",
            "灯泡",
            "哈密瓜",
            "野狼",
            "背包",
            "眼神",
            "缘分",
            "雪碧",
            "人生",
            "牛排",
            "蚂蚁",
            "飞鸟",
            "灰狼",
            "斑马",
            "汉堡",
            "悟空",
            "巨人",
            "绿茶",
            "自行车",
            "保温杯",
            "大碗",
            "墨镜",
            "魔镜",
            "煎饼",
            "月饼",
            "月亮",
            "星星",
            "芝麻",
            "啤酒",
            "玫瑰",
            "大叔",
            "小伙",
            "哈密瓜，数据线",
            "太阳",
            "树叶",
            "芹菜",
            "黄蜂",
            "蜜粉",
            "蜜蜂",
            "信封",
            "西装",
            "外套",
            "裙子",
            "大象",
            "猫咪",
            "母鸡",
            "路灯",
            "蓝天",
            "白云",
            "星月",
            "彩虹",
            "微笑",
            "摩托",
            "板栗",
            "高山",
            "大地",
            "大树",
            "电灯胆",
            "砖头",
            "楼房",
            "水池",
            "鸡翅",
            "蜻蜓",
            "红牛",
            "咖啡",
            "机器猫",
            "枕头",
            "大船",
            "诺言",
            "钢笔",
            "刺猬",
            "天空",
            "飞机",
            "大炮",
            "冬天",
            "洋葱",
            "春天",
            "夏天",
            "秋天",
            "冬日",
            "航空",
            "毛衣",
            "豌豆",
            "黑米",
            "玉米",
            "眼睛",
            "老鼠",
            "白羊",
            "帅哥",
            "美女",
            "季节",
            "鲜花",
            "服饰",
            "裙子",
            "白开水",
            "秀发",
            "大山",
            "火车",
            "汽车",
            "歌曲",
            "舞蹈",
            "老师",
            "导师",
            "方盒",
            "大米",
            "麦片",
            "水杯",
            "水壶",
            "手套",
            "鞋子",
            "自行车",
            "鼠标",
            "手机",
            "电脑",
            "书本",
            "奇迹",
            "身影",
            "香烟",
            "夕阳",
            "台灯",
            "宝贝",
            "未来",
            "皮带",
            "钥匙",
            "心锁",
            "故事",
            "花瓣",
            "滑板",
            "画笔",
            "画板",
            "学姐",
            "店员",
            "电源",
            "饼干",
            "宝马",
            "过客",
            "大白",
            "时光",
            "石头",
            "钻石",
            "河马",
            "犀牛",
            "西牛",
            "绿草",
            "抽屉",
            "柜子",
            "往事",
            "寒风",
            "路人",
            "橘子",
            "耳机",
            "鸵鸟",
            "朋友",
            "苗条",
            "铅笔",
            "钢笔",
            "硬币",
            "热狗",
            "大侠",
            "御姐",
            "萝莉",
            "毛巾",
            "期待",
            "盼望",
            "白昼",
            "黑夜",
            "大门",
            "黑裤",
            "钢铁侠",
            "哑铃",
            "板凳",
            "枫叶",
            "荷花",
            "乌龟",
            "仙人掌",
            "衬衫",
            "大神",
            "草丛",
            "早晨",
            "心情",
            "茉莉",
            "流沙",
            "蜗牛",
            "战斗机",
            "冥王星",
            "猎豹",
            "棒球",
            "篮球",
            "乐曲",
            "电话",
            "网络",
            "世界",
            "中心",
            "鱼",
            "鸡",
            "狗",
            "老虎",
            "鸭子",
            "雨",
            "羽毛",
            "翅膀",
            "外套",
            "火",
            "丝袜",
            "书包",
            "钢笔",
            "冷风",
            "八宝粥",
            "烤鸡",
            "大雁",
            "音响",
            "招牌",
            "胡萝卜",
            "冰棍",
            "帽子",
            "菠萝",
            "蛋挞",
            "香水",
            "泥猴桃",
            "吐司",
            "溪流",
            "黄豆",
            "樱桃",
            "小鸽子",
            "小蝴蝶",
            "爆米花",
            "花卷",
            "小鸭子",
            "小海豚",
            "日记本",
            "小熊猫",
            "小懒猪",
            "小懒虫",
            "荔枝",
            "镜子",
            "曲奇",
            "金针菇",
            "小松鼠",
            "小虾米",
            "酒窝",
            "紫菜",
            "金鱼",
            "柚子",
            "果汁",
            "百褶裙",
            "项链",
            "帆布鞋",
            "火龙果",
            "奇异果",
            "煎蛋",
            "唇彩",
            "小土豆",
            "高跟鞋",
            "戒指",
            "雪糕",
            "睫毛",
            "铃铛",
            "手链",
            "香氛",
            "红酒",
            "月光",
            "酸奶",
            "银耳汤",
            "咖啡豆",
            "小蜜蜂",
            "小蚂蚁",
            "蜡烛",
            "棉花糖",
            "向日葵",
            "水蜜桃",
            "小蝴蝶",
            "小刺猬",
            "小丸子",
            "指甲油",
            "康乃馨",
            "糖豆",
            "薯片",
            "口红",
            "超短裙",
            "乌冬面",
            "冰淇淋",
            "棒棒糖",
            "长颈鹿",
            "豆芽",
            "发箍",
            "发卡",
            "发夹",
            "发带",
            "铃铛",
            "小馒头",
            "小笼包",
            "小甜瓜",
            "冬瓜",
            "香菇",
            "小兔子",
            "含羞草",
            "短靴",
            "睫毛膏",
            "小蘑菇",
            "跳跳糖",
            "小白菜",
            "草莓",
            "柠檬",
            "月饼",
            "百合",
            "纸鹤",
            "小天鹅",
            "云朵",
            "芒果",
            "面包",
            "海燕",
            "小猫咪",
            "龙猫",
            "唇膏",
            "鞋垫",
            "羊",
            "黑猫",
            "白猫",
            "万宝路",
            "金毛",
            "山水",
            "音响"
        ];

        this.femaleNameItems = `嘉、琼、桂、娣、叶、璧、璐、娅、琦、晶、妍、茜、秋、珊、莎、锦、黛、青、倩、婷、姣、婉、娴、瑾、颖、露、瑶、怡、婵、雁、蓓、纨、仪、荷、丹、蓉、眉、君、琴、蕊、薇、菁、梦、岚、苑、婕、馨、瑗、琰、韵、融、园、艺、咏、卿、聪、澜、纯、毓、悦、昭、冰、爽、琬、茗、羽、希、宁、欣、飘、育、滢、馥、筠、柔、竹、霭、凝、晓、欢、霄、枫、芸、菲、寒、伊、亚、宜、可、姬、舒、影、荔、枝、思、丽、秀、娟、英、华、慧、巧、美、娜、静、淑、惠、珠、翠、雅、芝、玉、萍、红、娥、玲、芬、芳、燕、彩、春、菊、勤、珍、贞、莉、兰、凤、洁、梅、琳、素、云、莲、真、环、雪、荣、爱、妹、霞、香、月、莺、媛、艳、瑞、凡、佳`.split("、");
        this.maleNameItems = `涛、昌、进、林、有、坚、和、彪、博、诚、先、敬、震、振、壮、会、群、豪、心、邦、承、乐、绍、功、松、善、厚、庆、磊、民、友、裕、河、哲、江、超、浩、亮、政、谦、亨、奇、固、之、轮、翰、朗、伯、宏、言、若、鸣、朋、斌、梁、栋、维、启、克、伦、翔、旭、鹏、泽、晨、辰、士、以、建、家、致、树、炎、德、行、时、泰、盛、雄、琛、钧、冠、策、腾、伟、刚、勇、毅、俊、峰、强、军、平、保、东、文、辉、力、明、永、健、世、广、志、义、兴、良、海、山、仁、波、宁、贵、福、生、龙、元、全、国、胜、学、祥、才、发、成、康、星、光、天、达、安、岩、中、茂、武、新、利、清、飞、彬、富、顺、信、子、杰、楠、榕、风、航、弘`.split("、");

        this.familyNameItemsSin = "赵,钱,孙,李,周,吴,郑,王,冯,陈,褚,卫,蒋,沈,韩,杨,朱,秦,尤,许,何,吕,施,张,孔,曹,严,华,金,魏,陶,姜,戚,谢,邹,喻,柏,水,窦,章,云,苏,潘,葛,奚,范,彭,郎,鲁,韦,昌,马,苗,凤,花,方,俞,任,袁,柳,酆,鲍,史,唐,费,廉,岑,薛,雷,贺,倪,汤,滕,殷,罗,毕,郝,邬,安,常,乐,于,时,傅,皮,卞,齐,康,伍,余,元,卜,顾,孟,平,黄,和,穆,萧,尹,姚,邵,湛,汪,祁,毛,禹,狄,米,贝,明,臧,计,伏,成,戴,谈,宋,茅,庞,熊,纪,舒,屈,项,祝,董,梁,杜,阮,蓝,闵,席,季,麻,强,贾,路,娄,危,江,童,颜,郭,梅,盛,林,刁,钟,徐,丘,骆,高,夏,蔡,田,樊,胡,凌,霍,虞,万,支,柯,昝,管,卢,莫,经,房,裘,缪,干,解,应,宗,丁,宣,贲,邓,郁,单,杭,洪,包,诸,左,石,崔,吉,钮,龚,程,嵇,邢,滑,裴,陆,荣,翁,荀,羊,于,惠,甄,曲,家,封,芮,羿,储,靳,汲,邴,糜,松,井,段,富,巫,乌,焦,巴,弓,牧,隗,山,谷,车,侯,宓,蓬,全,郗,班,仰,秋,仲,伊,宫,宁,仇,栾,暴,甘,钭,厉,戎,祖,武,符,刘,景,詹,束,龙,叶,幸,司,韶,郜,黎,蓟,薄,印,宿,白,怀,蒲,邰,从,鄂,索,咸,籍,赖,卓,蔺,屠,蒙,池,乔,阴,郁,胥,能,苍,双,闻,莘,党,翟,谭,贡,劳,逄,姬,申,扶,堵,冉,宰,郦,雍,嘤,璩,桑,桂,濮,牛,寿,通,边,扈,燕,冀,郏,浦,尚,农,柴,瞿,阎,充,慕,连,茹,习,宦,艾,鱼,容,向,古,易,慎,戈,廖,庾,终,暨,居,衡,步,都,耿,满,弘,匡,国,文,寇,广,禄,阙,东,欧,殳,沃,利,蔚,越,夔,隆,师,巩,厍,聂,晁,勾,敖,融,冷,訾,辛,阚,那,简,饶,空,曾,毋,沙,乜,养,鞠,须,丰,巢,关,蒯,相,查,后,荆,红,游,竺,权,逯,盖,益,桓,公,万,俟,司,马,上,官,欧,阳,夏,候,诸,葛,闻,人,东,方,赫,连,皇,甫,尉,迟,公,羊,澹,台,公,治,宗,政,濮,阳,淳,于,单,于,太,叔,申,屠,公,孙,仲,孙".split(",");
        this.familyNameItemsSur ='辕轩,令狐,钟离,宇文,长孙,幕容,鲜于,闾丘,司徒,司空,丌官,司寇,仉督,子车,颛孙,端木,巫马,公西,漆雕,乐正,壤驷,公良,拓拔,夹谷,宰父,谷梁,晋楚,阎法,汝鄢,涂钦,段干,百里,东郭,南门,呼延,归海,羊舌,微生,岳帅,缑亢,况后,有琴,梁丘,左丘,东门,西门,商牟,佘佴,佰赏,南官,墨哈,谯笪,年爱,阳佟,第五,言福'.split(",");
        this.allName = this.femaleNameItems.concat(this.maleNameItems);
        this.familyNameItemsAll = this.familyNameItemsSin.concat(this.familyNameItemsSur)
    }

    getNickHeader() {
        return this.nickHeader[randomNum(0, 331)];
    }
    getNickFoot() {
        return this.nickFoot[randomNum(0, 325)];
    }

    getNickName() {
        return this.getNickHeader() + this.getNickFoot();
    }

    getFamilyName(sur = true) {
        if(sur){

            return this.familyNameItemsAll[randomNum(0, this.familyNameItemsAll.length - 1)];
        }
        else{
            return this.familyNameItemsSin[randomNum(0, this.familyNameItemsSin.length - 1)];
        }

    }
    getFemaleName(sur) {
        const r = randomNum(0, 1);
        if (r === 0) {
            return (
                this.getFamilyName(sur) +
                this.femaleNameItems[randomNum(0, this.femaleNameItems.length - 1)] +
                this.femaleNameItems[randomNum(0, this.femaleNameItems.length - 1)]
            );
        } else {
            return (
                this.getFamilyName(sur) +
                this.femaleNameItems[randomNum(0, this.femaleNameItems.length - 1)]
            );
        }
    }
    getMaleName(sur) {
        const r = randomNum(0, 1);
        if (r === 0) {
            return (
                this.getFamilyName(sur) +
                this.maleNameItems[randomNum(0, this.maleNameItems.length - 1)] +
                this.maleNameItems[randomNum(0, this.maleNameItems.length - 1)]
            );
        }else{
            return (
                this.getFamilyName(sur) +
                this.maleNameItems[randomNum(0, this.maleNameItems.length - 1)]
            );
        }
    }
    getName(sur) {
        const r = randomNum(0, 1);
        if (r === 0) {
            return (
                this.getFamilyName(sur) +
                this.allName[randomNum(0, this.allName.length - 1)] +
                this.allName[randomNum(0, this.allName.length - 1)]
            );
        }
        else{
            return (
                this.getFamilyName() +this.allName[randomNum(0, this.allName.length - 1)]
            );
        }

    }
}
let randomName = new RandomName();
module.exports = randomName;
